#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>

int main()
{
    //printf没有立即刷新的原因，是因为有缓冲区的存在
    //数据被暂存在了缓冲区里面，当进程退出时，数据才被刷新
    
    //首先printf内部就是封装了write
    printf(" hello printf"); // stdout -> 1
    fprintf(stdout, " hello fpritnf");
    fputs(" hello fputs", stdout);
   
    //write可是立即刷新的！printf -> write 
    //那么这个缓冲区在哪里？？ -- 只能是C语言提供的，是个语言级别的缓冲区
    //那么这个缓冲区不在那里？？ -- 一定不在write内部！
    //那么我们曾经谈论的缓冲区，不是内核级别的
    
    const char* msg = " hello write";
    write(1, msg, strlen(msg));

    //close(1);

    sleep(5);

    close(stdout->_fileno);

    return 0;
}
